<?php

namespace Common\Model;

use Think\Model;

class MasterModel extends Model {

    protected $_validate = array(/* array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]) */
        array('account', 'require', '账号名不能为空！'),
        array('password', 'require', '密码不能为空！'),
        array('name', 'require', '请输入名称！'),
        array('phone', 'require', '请输入练习方式！'),
        array('price', 'require', '请输入价格！'),
        array('account', '', '该账号已存在！', 0, 'unique', 1),
    );  // 自动验证定义
    protected $_auto = array(/* array(完成字段1,完成规则,[完成条件,附加规则]) */
        array('addTime', 'time', 1, 'function'),
        array('updateTime', 'time', 2, 'function'),
        array('isOn', '1', 1),
    );  // 自动完成定义

    /**
     *  获取单个信息
     */
    public function getMaster($id = null, $where = array(),$fields = '*') {
        if (!empty($id)) {
            $where['masterID'] = $id;
        }

        $result = $this->field($fields)->where($where)->find();

        return $result;
    }

    /**
     * 获得列表（带基本查询）
     */
    public function getMasterList($pageNo = 1, $pageSize = 15, $where = array(), $order = array()) {
        $rt = $this->where($where)->page("$pageNo,$pageSize")->order($order)->select();
        return $rt;
    }

    public function getMasterListLength($where = array()) {
        return $this->where($where)->count();
    }

    /**
     * 添加单个信息
     * @return type
     */
    public function addMaster($data = '') {
        $rt = false;
        if ($this->create($data)) {
            $rt = $this->add();
        }
        return $rt;
    }

    /**
     * 更新信息(注意$data一定要有主键id,若$data为空，则默认是对$_POST数组处理)
     * @return type
     */
    public function updateMaster($data = '') {
        $rt = false;
        if ($this->create($data)) {
            $rt = $this->save();
        }
                
        return $rt;
    }

    /**
     * 删除
     */
    public function deleteMaster($id) {
        if ($id <= 0) {
            $this->error = "无效ID";
            return false;
        }
        $data = array("isOn" => 0, "updateTime" => time());
        return $this->where("goodsID=$id")->save($data);
    }
    
    /*--------------缓存操作---------------*/
    /**
     *  在缓存中通过id获取旧token
     */
    public function getOldToken($id){
    	$old=S("master_".$id);
    
    	return $old;
    }
    
    /**
     *  将token写进缓存
     */
    public function addToken($token,$str,$expire=0){
    	$result=S("tkn_".$token,$str,$expire);
    
    	return $result;
    }
    
    /**
     *  通过token在缓存中读取用户信息
     */
    public function getTokenMaster($token){
    	$master=S("tkn_".$token);
    
    	return $master;
    }
    
    /**
     *  修改缓存中id的token
     */
    public function editMasterToken($id,$token){
    	$result=S("master_".$id,$token);
    
    	return $result;
    }

}
